import random

# 初始化医院信息
hospital = {
    "资金": 10000,
    "医生数量": 3,
    "声誉": 50,
    "患者等待列表": [],
    "治疗室数量": 2
}

# 患者类型及相关信息
patient_types = {
    "轻度抑郁": {
        "治疗费用": 500,
        "治疗时间": 2,
        "治愈概率": 0.8
    },
    "中度焦虑": {
        "治疗费用": 800,
        "治疗时间": 3,
        "治愈概率": 0.6
    },
    "重度失眠": {
        "治疗费用": 1200,
        "治疗时间": 4,
        "治愈概率": 0.4
    }
}


# 显示医院状态
def show_hospital_status():
    print("医院当前状态：")
    print(f"资金: {hospital['资金']} 元")
    print(f"医生数量: {hospital['医生数量']} 人")
    print(f"声誉: {hospital['声誉']}")
    print(f"等待治疗的患者数量: {len(hospital['患者等待列表'])} 人")
    print(f"治疗室数量: {hospital['治疗室数量']} 个")


# 招聘医生
def hire_doctor():
    cost = 2000
    if hospital["资金"] >= cost:
        hospital["资金"] -= cost
        hospital["医生数量"] += 1
        print("成功招聘一名医生，花费 2000 元。")
    else:
        print("资金不足，无法招聘医生。")


# 扩建治疗室
def expand_therapy_rooms():
    cost = 3000
    if hospital["资金"] >= cost:
        hospital["资金"] -= cost
        hospital["治疗室数量"] += 1
        print("成功扩建一个治疗室，花费 3000 元。")
    else:
        print("资金不足，无法扩建治疗室。")


# 接待新患者
def receive_patients():
    num_patients = random.randint(1, 3)
    for _ in range(num_patients):
        patient_type = random.choice(list(patient_types.keys()))
        hospital["患者等待列表"].append(patient_type)
    print(f"接待了 {num_patients} 名新患者，当前等待治疗的患者有 {len(hospital['患者等待列表'])} 人。")


# 治疗患者
def treat_patients():
    available_doctors = hospital["医生数量"]
    available_rooms = hospital["治疗室数量"]
    treated_patients = min(available_doctors, available_rooms, len(hospital['患者等待列表']))
    if treated_patients == 0:
        print("没有可治疗的患者或资源不足。")
        return
    for _ in range(treated_patients):
        patient = hospital["患者等待列表"].pop(0)
        patient_info = patient_types[patient]
        hospital["资金"] += patient_info["治疗费用"]
        if random.random() < patient_info["治愈概率"]:
            print(f"成功治愈一名 {patient} 患者，获得 {patient_info['治疗费用']} 元收入。")
            hospital["声誉"] += 5
        else:
            print(f"未能治愈一名 {patient} 患者，获得 {patient_info['治疗费用']} 元收入，但声誉下降。")
            hospital["声誉"] -= 3
    print(f"本次治疗了 {treated_patients} 名患者。")


# 主游戏循环
while True:
    show_hospital_status()
    print("\n请选择操作：")
    print("1. 招聘医生")
    print("2. 扩建治疗室")
    print("3. 接待新患者")
    print("4. 治疗患者")
    print("5. 结束游戏")
    choice = input("请输入选项编号：")
    if choice == "1":
        hire_doctor()
    elif choice == "2":
        expand_therapy_rooms()
    elif choice == "3":
        receive_patients()
    elif choice == "4":
        treat_patients()
    elif choice == "5":
        print("游戏结束，感谢你的参与！")
        break
    else:
        print("无效的选项，请重新输入。")